#ifndef HEADER_AFFICHABLE
#define HEADER_AFFICHABLE

#include <SDL/SDL.h>

#include "glob.h"

class Affichable{

public :
    Affichable(SDL_Rect position , SDL_Surface *image , SDL_Surface *ecran);

    Affichable(SDL_Rect position , SDL_Surface *ecran);

    Affichable(SDL_Surface *image , SDL_Surface *ecran);

    Affichable(SDL_Surface *ecran);

    //permet d'afficher l'objet
    virtual void afficher();
    //permet de savoir si l'objet est sorti de l'ecran
    virtual bool doitDisparaitre();
    //premet de decaler vers le bas l'objet
    virtual void decaler(int nombre);
    //retourne l'amplitude du cube dans une taille
	virtual Taille getAmplitudeCube();
	//pour changer l'image du cube
	void setImage(SDL_Surface *im);
    //retourne la position de l'objet
    virtual SDL_Rect getPosition();
    //retourne la position la position Initial (pour les cubes en mouvement si non retourne la position du cube)
    virtual SDL_Rect getPositionIni();
    //premet de recuperer la taille de l'objet
    virtual Taille getTaille();

    void setPosition(SDL_Rect position);

    static int compareTo(void * v1 , void *v2);
protected :
    //fonction pour replacer l'objet si jamais il depasse de l'ecran
    void replacer();

    SDL_Surface *ecran;
    SDL_Surface *image;
    SDL_Rect position;


};

#endif
